package com.losalpes.persistence.entity;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;

/**
 * Clase que maneja los atributos de mueble
 * @author CSI
 */
@Entity
public class Mueble implements Cloneable, Serializable {

    private long id;
    private String referencia;
    private String referenciaOriginal;
    private String nombre;
    private String descripcion;
    private TipoMueble tipo;
    private String material;
    private double alto;
    private double ancho;
    private double profundidad;
    private String color;
    private double peso;
    private String foto;
    private int cantidad;
    private long precio;
    private Promocion promocion;

    /**
     *  Constructor de la clase
     */
    public Mueble() {
    }

    /**
     *
     * @param referencia
     * @param nombre
     * @param descripcion
     * @param tipo
     * @param foto
     */
    public Mueble(String referencia, String nombre, String descripcion, TipoMueble tipo, String foto) {
        this.referencia = referencia;
        this.nombre = nombre;
        this.descripcion = descripcion;
        this.tipo = tipo;
        this.foto = foto;
        this.promocion = new Promocion();
    }

    @Id
    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    /**
     *
     * @return
     */
    public double getAlto() {
        return alto;
    }

    /**
     *
     * @param alto
     */
    public void setAlto(double alto) {
        this.alto = alto;
    }

    /**
     *
     * @return
     */
    public double getAncho() {
        return ancho;
    }

    /**
     *
     * @param ancho
     */
    public void setAncho(double ancho) {
        this.ancho = ancho;
    }

    /**
     *
     * @return
     */
    public String getColor() {
        return color;
    }

    /**
     *
     * @param color
     */
    public void setColor(String color) {
        this.color = color;
    }

    /**
     *
     * @return
     */
    public String getDescripcion() {
        return descripcion;
    }

    /**
     *
     * @param descripcion
     */
    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    /**
     *
     * @return
     */
    public String getMaterial() {
        return material;
    }

    /**
     *
     * @param material
     */
    public void setMaterial(String material) {
        this.material = material;
    }

    /**
     *
     * @return
     */
    public String getNombre() {
        return nombre;
    }

    /**
     *
     * @param nombre
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     *
     * @return
     */
    public double getPeso() {
        return peso;
    }

    /**
     *
     * @param peso
     */
    public void setPeso(double peso) {
        this.peso = peso;
    }

    /**
     *
     * @return
     */
    public double getProfundidad() {
        return profundidad;
    }

    /**
     *
     * @param profundidad
     */
    public void setProfundidad(double profundidad) {
        this.profundidad = profundidad;
    }

    /**
     *
     * @return
     */
    public String getReferencia() {
        return referencia;
    }

    /**
     *
     * @param referencia
     */
    public void setReferencia(String referencia) {
        this.referencia = referencia;
    }

    /**
     *
     * @return
     */
    public TipoMueble getTipo() {
        return tipo;
    }

    /**
     *
     * @param tipo
     */
    public void setTipo(TipoMueble tipo) {
        this.tipo = tipo;
    }

    /**
     *
     * @return
     */
    public int getCantidad() {
        return cantidad;
    }

    /**
     *
     * @param cantidad
     */
    public void setCantidad(int cantidad) {
        this.cantidad = cantidad;
    }

    /**
     *
     * @return
     */
    public String getFoto() {
        return foto;
    }

    /**
     *
     * @param foto
     */
    public void setFoto(String foto) {
        this.foto = foto;
    }

    /**
     *
     * @return
     */
    public long getPrecio() {
        return precio;
    }

    /**
     *
     * @param precio
     */
    public void setPrecio(long precio) {
        this.precio = precio;
    }

    /**
     *
     * @return
     */
    public Mueble Clone() {
        try {
            return (Mueble) this.clone();
        } catch (Exception ex) {
        }
        return null;
    }

    /**
     *
     * @return
     */
    public String getReferenciaOriginal() {
        return referenciaOriginal;
    }

    /**
     *
     * @param referenciaOriginal
     */
    public void setReferenciaOriginal(String referenciaOriginal) {
        this.referenciaOriginal = referenciaOriginal;
    }

    /**
     *
     * @return
     */
    public Promocion getPromocion() {
        return promocion;
    }

    /**
     *
     * @param promocion
     */
    public void setPromocion(Promocion promocion) {
        this.promocion = promocion;
    }


}
